MIG = mig java -target=imote2

# List of message classes to build
MSGS = RawMsg.java GetRawMsg.java AccelResetMsg.java StartMsg.java \
	RootMsg.java GetRootMsg.java SetSamplingFreqMsg.java \
	PSMsg.java GetPSMsg.java ErrorMsg.java \
	RootParamMsg.java GetRootParamMsg.java \
	FFTMsg.java GetFFTMsg.java
MSG_CLASSES = $(subst .java,.class,${MSGS})
CLASSES = $(MSG_CLASSES) net/tinyos/packet/SerialByteSource.class \
	servilla/util/Debugger.class DLAC.class MoteCtrl.class WS2.class \
	WS2Configuration.class WS2GUI.class 

all: ws2.jar

JAVA_SDK = $(subst \,\\,$(shell cygpath -w ${TOSROOT}))
JAVAC = javac -cp ${JAVA_SDK}\\tools\\java\;.\;..\\ARQ\\java\\Servilla.jar\;commons-math-1.2.jar

ws2.jar: ${CLASSES} Manifest
	jar cfm $@ Manifest *.class net/tinyos/packet/*.class servilla/util/*.class

%.class: %.java
	$(JAVAC) $<

RawMsg.java: ../ws.h
	$(MIG) -java-classname=RawMsg ../ws.h RawMsg -o $@

GetRawMsg.java: ../ws.h
	$(MIG) -java-classname=GetRawMsg ../ws.h GetRawMsg -o $@

AccelResetMsg.java: ../ws.h
	$(MIG) -java-classname=AccelResetMsg ../ws.h AccelResetMsg -o $@

StartMsg.java: ../ws.h
	$(MIG) -java-classname=StartMsg ../ws.h StartMsg -o $@

RootMsg.java: ../ws.h
	$(MIG) -java-classname=RootMsg ../ws.h RootMsg -o $@

GetRootMsg.java: ../ws.h
	$(MIG) -java-classname=GetRootMsg ../ws.h GetRootMsg -o $@

SetSamplingFreqMsg.java: ../ws.h
	$(MIG) -java-classname=SetSamplingFreqMsg ../ws.h SetSamplingFreqMsg -o $@

GetPSMsg.java: ../ws.h
	$(MIG) -java-classname=GetPSMsg ../ws.h GetPSMsg -o $@
	
PSMsg.java: ../ws.h
	$(MIG) -java-classname=PSMsg ../ws.h PSMsg -o $@

ErrorMsg.java: ../ws.h
	$(MIG) -java-classname=ErrorMsg ../ws.h ErrorMsg -o $@
	
RootParamMsg.java: ../ws.h
	$(MIG) -java-classname=RootParamMsg ../ws.h RootParamMsg -o $@

GetRootParamMsg.java: ../ws.h
	$(MIG) -java-classname=GetRootParamMsg ../ws.h GetRootParamMsg -o $@
	
FFTMsg.java: ../ws.h
	$(MIG) -java-classname=FFTMsg ../ws.h FFTMsg -o $@

GetFFTMsg.java: ../ws.h
	$(MIG) -java-classname=GetFFTMsg ../ws.h GetFFTMsg -o $@
	
cleanmig:
	rm -f $(MSGS) $(MSG_CLASSES)
	
clean:
	rm -f $(MSGS) *.class

